home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / Updates, etc. / PG PRO⁄PG Lite Demos / PG Writer π / Edit Menu.FLTR < prev    next >
Text File  |  1994-03-28  |  6KB  |  170 lines

  1. '===============================================================================
  2. '=                         Copyright 1992 Staz™ Software, Inc.                 =
  3. '=                               All rights reserved                           =
  4. '=                           "Edit Menu.FLTR" from PG:PRO                      =
  5. '===============================================================================
  6. INCLUDE FILE _aplIncl
  7. COMPILE 0,_MacsbugLabels_strResource_caseInsensitive'set by PG:PRO
  8. GLOBALS "PG PRO.GLBL"'include standard global file
  9. END GLOBALS'no other globals
  10. DEFSTR LONG'needed for CVI's
  11. GOTO "EM:Start"'ALWAYS jump around functions
  12. INCLUDE "@Header.INCL"
  13. '-------------------------------- Local Equates --------------------------------
  14. _EMUndoItem           = 1
  15. _EMCutItem            = 3
  16. _EMCopyItem           = 4
  17. _EMPasteItem          = 5
  18. _EMClearItem          = 6
  19. _EMSelectAllItem      = 7
  20. '_______________________________________________________________________________
  21. LOCAL FN EMenableUndo'∑∑œœœœœœœœœœœœœœœœœœœœœœœœœ∑∑
  22. '—————————————————————————————————————————————————————————————————————————————
  23. theField = WINDOW(_EFnum)'current field
  24. DEF DISPOSEH(gUndoHndl&)'dump undo handle
  25. LONG IF theField'a field is active
  26. LONG IF WINDOW(_EFClass) > 0'not a pict field
  27. LONG IF WINDOW(_EFTextLen)'•• 10/29/92 ••
  28. temp$ = STR#(_baseID - 3,1)'"Edit"
  29. editMenu   = FN pGfindMenu(temp$)'got this menu?
  30. GET FIELD gUndoHndl&,theField'get the info
  31. gUndoStart = WINDOW(_selStart)'undo selection start
  32. gUndoEnd   = WINDOW(_selEnd)'undo selection end
  33. END IF'•• 10/29/92 ••
  34. END IF
  35. END IF
  36. END FN
  37. '_______________________________________________________________________________
  38. LOCAL FN EMautoMenu'∑∑œœœœœœœœœœœœœœœœœœœœœœœœœ∑∑
  39. '—————————————————————————————————————————————————————————————————————————————
  40. mHndl& = FN GETMHANDLE(gWhichMenu)
  41. LONG IF mHndl&
  42. theTitle$ = PSTR$([mHndl&] + _menuData)
  43. LONG IF theTitle$ = STR#(_baseID - 4,1)'get name of font menu
  44. FN EMenableUndo:gUndoable = _zTrue
  45. END IF
  46.  
  47. LONG IF theTitle$ = STR#(_baseID - 4,2)'get name of size menu
  48. FN EMenableUndo:gUndoable = _zTrue
  49. END IF
  50.  
  51. LONG IF theTitle$ = STR#(_baseID - 4,3)'get name of style menu
  52. FN EMenableUndo:gUndoable = _zTrue
  53. END IF
  54.  
  55. LONG IF theTitle$ = STR#(_baseID - 3,1)
  56. CALL GETITEM(mHndl&,gWhichItem,theItem$)
  57. SELECT theItem$
  58. CASE STR#(_baseID - 3,2)'"Undo" item
  59. EDIT FIELD WINDOW(_EFnum),&gUndoHndl&
  60. SETSELECT gUndoStart,gUndoEnd
  61. gUndoable = _false
  62. CASE STR#(_baseID - 3,3)'"Select All" item
  63. LONG IF WINDOW(_EFnum)
  64. SETSELECT 0,WINDOW(_EFTextLen)
  65. END IF
  66. END SELECT
  67. END IF
  68. END IF
  69. END FN
  70. '_______________________________________________________________________________
  71. LOCAL FN EMfixEditMenu'∑∑œœœœœœœœœœœœœœœœœœœœœœœœœ∑∑
  72. '—————————————————————————————————————————————————————————————————————————————
  73. selAllItem    = 0
  74. lastItem      = _EMClearItem
  75. temp$         = STR#(_baseID - 3,1)
  76. editMenu      = FN pGfindMenu(temp$)
  77. mHndl&        = FN GETMHANDLE(editMenu)
  78. LONG IF mHndl&
  79. itemCount     = FN COUNTMITEMS(mHndl&)
  80. FOR thisItem  = 1 TO itemCount
  81. CALL GETITEM(mHndl&,thisItem,temp$)
  82. LONG IF UCASE$(temp$) = "SELECT ALL"
  83. selAllItem= thisItem
  84. thisItem  = itemCount
  85. END IF
  86. NEXT
  87. IF selAllItem THEN MENU editMenu,selAllItem,_disable
  88. LONG IF SYSTEM(_aplActive) = 0'DA in front
  89. MENU editMenu,_EMUndoItem     ,_enable,"Undo"
  90. MENU editMenu,_EMCutItem      ,_enable
  91. MENU editMenu,_EMCopyItem     ,_enable
  92. MENU editMenu,_EMPasteItem    ,_enable
  93. MENU editMenu,_EMClearItem    ,_enable
  94. XELSE
  95. LONG IF WINDOW(_activeWnd) = 0 OR gUndoHndl& = 0 OR gUndoable = 0
  96. temp$ = STR#(_baseID - 3,4)
  97. MENU editMenu,_EMUndoItem,_disable,temp$
  98. XELSE
  99. temp$ = STR#(_baseID - 3,2)
  100. MENU editMenu,_EMUndoItem,_enable,temp$
  101. END IF
  102. FOR x = _EMCutItem TO _EMClearItem
  103. MENU editMenu,x,0
  104. NEXT
  105. theField = WINDOW(_EFnum)'get current field num
  106. LONG IF theField'any active field?
  107. LONG IF WINDOW(_EFClass)>0'not a pict field
  108. LONG IF WINDOW(_textClip)'text in scrap
  109. MENU editMenu,_EMPasteItem,_enable'enable paste
  110. END IF
  111. LONG IF WINDOW(_EFTextLen)'non-zero lgth
  112. LONG IF WINDOW(_selStart) <> WINDOW(_selEnd)'non-zero selection range
  113. MENU editMenu,_EMCutItem   ,_enable'OK to cut,copy clear
  114. MENU editMenu,_EMCopyItem  ,_enable
  115. MENU editMenu,_EMClearItem ,_enable
  116. END IF
  117. IF selAllItem THEN MENU editMenu,selAllItem,_enable'select all
  118. END IF
  119. END IF
  120. END IF
  121. END IF
  122. END IF
  123. END FN
  124. '_______________________________________________________________________________
  125. LOCAL FN EMcheckScrapSize'∑∑œœœœœœœœœœœœœœœœœœœœœœœœœ∑∑
  126. '—————————————————————————————————————————————————————————————————————————————
  127. LONG IF gWhat = 16
  128. temp$ = STR#(_baseID - 3,1)
  129. editMenu = FN pGfindMenu(temp$)
  130. LONG IF gWhereY = editMenu
  131. LONG IF gWhereX = _EMPasteItem
  132. theSize& = FN GETSCRAP(0,_"TEXT",offSet&)
  133. LONG IF theSize& + WINDOW(_EFTextLen) > 32750&
  134. % EVENT,0
  135. EVENT% = 7
  136. DIALOG = _showErr
  137. END IF
  138. END IF
  139. END IF
  140. END IF
  141. END FN
  142. '_______________________________________________________________________________
  143. '€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ EDIT FILTER €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
  144. '———————————————————————————————————————————————————————————————————————————————
  145. "EM:Start"
  146. SELECT gAction
  147. CASE _mouseAction'pass quickly
  148. CASE _menuAction  :FN EMautoMenu
  149. CASE _mainAction  :IF gSubAction = _mainShutDown    THEN DEF DISPOSEH(gUndoHndl&)
  150. CASE _otherAction :IF gSubAction = _otherBeforeMenu THEN FN EMfixEditMenu
  151. LONG IF gSubAction =  _otherFilterEvent
  152. FN EMcheckScrapSize
  153. END IF
  154. CASE _windowAction:IF gSubAction = _windowActivate  THEN FN EMenableUndo
  155. CASE _fieldAction
  156. SELECT gSubAction
  157. CASE _fieldActivate:FN EMenableUndo:gUndoable = _false
  158. CASE _fieldChanging:FN EMenableUndo:gUndoable = _zTrue
  159. CASE _fieldKeyPressed              :gUndoable = _zTrue
  160. LONG IF WINDOW(_selStart) < WINDOW(_selEnd)
  161. FN EMenableUndo
  162. END IF
  163. LONG IF WINDOW(_EFTextLen) > 32750&
  164. gKey$  = "":gAction = 0
  165. EVENT% = 8
  166. DIALOG = _showErr
  167. END IF
  168. END SELECT
  169. END SELECT
  170.